package logger

import (
	"log"
	"os"
)

// Logger 是一个简单的日志记录器
type Logger struct {
	logger *log.Logger
}

var globalLogger *Logger

// NewLogger 创建一个新的日志记录器
func NewLogger() *Logger {
	logFile, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		log.Fatalf("Failed to open log file: %v", err)
	}
	return &Logger{
		logger: log.New(logFile, "", log.LstdFlags),
	}
}

// InitLogger 初始化全局日志记录器
func InitLogger() {
	globalLogger = NewLogger()
}

// GetLogger 获取全局日志记录器
func GetLogger() *Logger {
	if globalLogger == nil {
		InitLogger()
	}
	return globalLogger
}

// Info 记录信息级别的日志
func (l *Logger) Info(message string) {
	l.logger.Printf("[INFO] %s\n", message)
}

// Error 记录错误级别的日志
func (l *Logger) Error(message string) {
	l.logger.Printf("[ERROR] %s\n", message)
}

// Print 添加符合 GORM 日志接口要求的方法
func (l *Logger) Print(v ...interface{}) {
	l.logger.Println(v...)
}
